// import useUserStore from '@/stores/userStore';
import axios from 'axios';
import nprogress from 'nprogress';
import { ElLoading, ElMessage } from 'element-plus';
// import router from '@/router';

const request = axios.create({
	baseURL: import.meta.env.VITE_APP_API_BASE,
	timeout: 5 * 60000,
});
let loadingInstance = null;
// nprogress.configure({
// 	showSpinner: false, // 是否显示进度条右侧的旋转进度图标
// 	trickleSpeed: 200, // 进度条递增速度
// });
// 请求拦截器
request.interceptors.request.use(
	(config) => {
		// loadingInstance = ElLoading.service({ fullscreen: true });
		nprogress.start(); // 开启进度条
		// const token = useUserStore().token;
		// if (token) {
		// 	config.headers.AUTHORIZATION = token;
		// }
		return config;
	},
	(error) => {
		return Promise.reject(error);
	}
);

// 响应拦截器
request.interceptors.response.use(
	(response) => {
		nprogress.done(); // 关闭进度条
		// loadingInstance.close();

		// 统一处理token过期
		// const res = response.data;
		// if (res.status == 1 && res.data?.expire) {
		//   const userStore = useUserStore();
		//   ElMessage.error('登录已过期，请重新登录');
		//   userStore.logout();
		//   router.replace('/login');
		//   return Promise.reject(new Error('Token expired'));
		// }

		return response.data;
	},
	(error) => {
		nprogress.done(); // 关闭进度条
		// loadingInstance.close();

		// // 处理401错误
		// if (error.response?.status === 401) {
		//   const userStore = useUserStore();
		//   ElMessage.error('登录已过期，请重新登录');
		//   userStore.logout();
		//   router.replace('/login');
		//   return Promise.reject(new Error('Unauthorized'));
		// }

		return Promise.reject(error);
	}
);

export default request;
